package com.qdlc.p2p.biz.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.qdlc.p2p.biz.service.TokenStoreService;
import com.qdlc.p2p.common.util.DateUtil;
import com.qdlc.p2p.common.util.OrderNoUtil;
import com.qdlc.p2p.dal.dao.TokenStoreDao;
import com.qdlc.p2p.dal.dto.TokenStore;

@Service("tokenStoreService")
public class TokenStoreServiceImpl implements TokenStoreService {

    @Resource
    private TokenStoreDao tokenStoreDao;

    @Override
    public TokenStore findByUserId(long userId) {
        return tokenStoreDao.findObjByProperty("user.userId", userId);
    }

    @Override
    public TokenStore findByRefreshToken(String refreshToken) {
        return tokenStoreDao.findObjByProperty("refreshToken", refreshToken);
    }

    @Override
    public TokenStore save(TokenStore tokenStore) {
        return tokenStoreDao.save(tokenStore);
    }

    @Override
    public TokenStore refresh(TokenStore tokenStore) {
        tokenStore.setAddTime(DateUtil.getNow());
        tokenStore.setOauthToken(OrderNoUtil.getInstance().getSerialNumber());
        tokenStore.setRefreshToken(OrderNoUtil.getInstance().getSerialNumber());
        return tokenStoreDao.update(tokenStore);
    }

    @Override
    public TokenStore getTokenByOauthToken(String oauthToken) {
        return tokenStoreDao.getTokenByOauthToken(oauthToken);
    }
}
